Autogenerated HTML docs for v2.26.0-103-g3bab5
diff --git a/RelNotes/2.27.0.txt b/RelNotes/2.27.0.txt index 84eab73..7a5c7ff 100644 --- a/RelNotes/2.27.0.txt +++ b/RelNotes/2.27.0.txt
@@ -4,17 +4,62 @@ Updates since v2.26 ------------------- +Backward compatibility notes + + * When "git describe C" finds that commit C is pointed by a signed or + annotated tag, which records T as its tagname in the object, the + command gives T as its answer. Even if the user renames or moves + such a tag from its natural location in the "refs/tags/" hierarchy, + "git describe C" would still give T as the answer, but in such a + case "git show T^0" would no longer work as expected. There may be + nothing at "refs/tags/T" or even worse there may be a different tag + instead. + + Starting from this version, "git describe" will always use the + "long" version, as if the "--long" option were given, when giving + its output based on such a misplaced tag to work around the problem. + + * "git pull" issues a warning message until the pull.rebase + configuration variable is explicitly given, which some existing + users may find annoying---those who prefer not to rebase need to + set the variable to false to squelch the warning. + + UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. + * Smudge/clean conversion filters are now given more information + (e.g. the object of the tree-ish in which the blob being converted + appears, in addition to its path, which has already been given). + + * When "git describe C" finds an annotated tag with tagname A to be + the best name to explain commit C, and the tag is stored in a + "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the + command gave a warning message but used A (not B) to describe C. + If C is exactly at the tag, the describe output would be "A", but + "git rev-parse A^0" would not be equal as "git rev-parse C^0". The + behavior of the command has been changed to use the "long" form + i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. + + * "git pull" learned to warn when no pull.rebase configuration + exists, and neither --[no-]rebase nor --ff-only is given (which + would result a merge). + Performance, Internal Implementation, Development Support etc. * The advise API has been revamped to allow more systematic enumeration of advice knobs in the future. + * SHA-256 transition continues. + + * The code to interface with GnuPG has been refactored. + + * "git stash" has kept an escape hatch to use the scripted version + for a few releases, which got stale. It has been removed. + Fixes since v2.26 ----------------- @@ -32,6 +77,14 @@ rewrite of "git rebase" in C, which has been corrected. (merge 430b75f720 pw/advise-rebase-skip later to maint). + * Fix "git checkout --recurse-submodules" of a nested submodule + hierarchy. + (merge 846f34d351 pb/recurse-submodules-fix later to maint). + + * The "--fork-point" mode of "git rebase" regressed when the command + was rewritten in C back in 2.20 era, which has been corrected. + (merge f08132f889 at/rebase-fork-point-regression-fix later to maint). + * Other code cleanup, docfix, build fix, etc. (merge 564956f358 jc/maintain-doc later to maint). (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint).
diff --git a/git-config.html b/git-config.html index ac0bd68..c5dc28d 100644 --- a/git-config.html +++ b/git-config.html
@@ -8957,18 +8957,12 @@ </dt> <dd> <p> - Set to <code>false</code> to use the legacy shell script implementation of - <a href="git-stash.html">git-stash(1)</a>. Is <code>true</code> by default, which means use - the built-in rewrite of it in C. + Unused configuration variable. Used in Git versions 2.22 to + 2.26 as an escape hatch to enable the legacy shellscript + implementation of stash. Now the built-in rewrite of it in C + is always used. Setting this will emit a warning, to alert any + remaining users that setting this now does nothing. </p> -<div class="paragraph"><p>The C rewrite is first included with Git version 2.22 (and Git for Windows -version 2.19). This option serves as an escape hatch to re-enable the -legacy version in case any bugs are found in the rewrite. This option and -the shell script version of <a href="git-stash.html">git-stash(1)</a> will be removed in some -future release.</p></div> -<div class="paragraph"><p>If you find some reason to set this option to <code>false</code>, other than -one-off testing, you should report the behavior difference as a bug in -Git (see <a href="https://git-scm.com/community">https://git-scm.com/community</a> for details).</p></div> </dd> <dt class="hdlist1"> stash.showPatch
diff --git a/git-fast-import.html b/git-fast-import.html index 2f137d1..779e651 100644 --- a/git-fast-import.html +++ b/git-fast-import.html
@@ -927,6 +927,33 @@ </dl></div> </div> <div class="sect2"> +<h3 id="_submodule_rewriting">Submodule Rewriting</h3> +<div class="dlist"><dl> +<dt class="hdlist1"> +--rewrite-submodules-from=<name>:<file> +</dt> +<dt class="hdlist1"> +--rewrite-submodules-to=<name>:<file> +</dt> +<dd> +<p> + Rewrite the object IDs for the submodule specified by <name> from the values + used in the from <file> to those used in the to <file>. The from marks should + have been created by <code>git fast-export</code>, and the to marks should have been + created by <code>git fast-import</code> when importing that same submodule. +</p> +<div class="paragraph"><p><name> may be any arbitrary string not containing a colon character, but the +same value must be used with both options when specifying corresponding marks. +Multiple submodules may be specified with different values for <name>. It is an +error not to use these options in corresponding pairs.</p></div> +<div class="paragraph"><p>These options are primarily useful when converting a repository from one hash +algorithm to another; without them, fast-import will fail if it encounters a +submodule because it has no way of writing the object ID into the new hash +algorithm.</p></div> +</dd> +</dl></div> +</div> +<div class="sect2"> <h3 id="_performance_and_compression_tuning">Performance and Compression Tuning</h3> <div class="dlist"><dl> <dt class="hdlist1"> @@ -2577,7 +2604,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-10 08:03:13 PDT + 2020-03-26 18:10:39 PDT </div> </div> </body>
diff --git a/git-fast-import.txt b/git-fast-import.txt index 7889f95..77c6b3d 100644 --- a/git-fast-import.txt +++ b/git-fast-import.txt
@@ -122,6 +122,26 @@ Relative and non-relative marks may be combined by interweaving --(no-)-relative-marks with the --(import|export)-marks= options. +Submodule Rewriting +~~~~~~~~~~~~~~~~~~~ + +--rewrite-submodules-from=<name>:<file>:: +--rewrite-submodules-to=<name>:<file>:: + Rewrite the object IDs for the submodule specified by <name> from the values + used in the from <file> to those used in the to <file>. The from marks should + have been created by `git fast-export`, and the to marks should have been + created by `git fast-import` when importing that same submodule. ++ +<name> may be any arbitrary string not containing a colon character, but the +same value must be used with both options when specifying corresponding marks. +Multiple submodules may be specified with different values for <name>. It is an +error not to use these options in corresponding pairs. ++ +These options are primarily useful when converting a repository from one hash +algorithm to another; without them, fast-import will fail if it encounters a +submodule because it has no way of writing the object ID into the new hash +algorithm. + Performance and Compression Tuning ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/git-init.html b/git-init.html index 22e314e..f13760c 100644 --- a/git-init.html +++ b/git-init.html
@@ -750,7 +750,7 @@ <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>git init</em> [-q | --quiet] [--bare] [--template=<template_directory>] - [--separate-git-dir <git dir>] + [--separate-git-dir <git dir>] [--object-format=<format] [--shared[=<permissions>]] [directory]</pre> <div class="attribution"> </div></div> @@ -800,6 +800,15 @@ </p> </dd> <dt class="hdlist1"> +--object-format=<format> +</dt> +<dd> +<p> +Specify the given object format (hash algorithm) for the repository. The valid +values are <em>sha1</em> and (if enabled) <em>sha256</em>. <em>sha1</em> is the default. +</p> +</dd> +<dt class="hdlist1"> --template=<template_directory> </dt> <dd> @@ -972,7 +981,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-10 08:03:13 PDT + 2020-03-26 18:10:39 PDT </div> </div> </body>
diff --git a/git-init.txt b/git-init.txt index 32880aa..adc6adf 100644 --- a/git-init.txt +++ b/git-init.txt
@@ -10,7 +10,7 @@ -------- [verse] 'git init' [-q | --quiet] [--bare] [--template=<template_directory>] - [--separate-git-dir <git dir>] + [--separate-git-dir <git dir>] [--object-format=<format] [--shared[=<permissions>]] [directory] @@ -48,6 +48,11 @@ Create a bare repository. If `GIT_DIR` environment is not set, it is set to the current working directory. +--object-format=<format>:: + +Specify the given object format (hash algorithm) for the repository. The valid +values are 'sha1' and (if enabled) 'sha256'. 'sha1' is the default. + --template=<template_directory>:: Specify the directory from which templates will be used. (See the "TEMPLATE
diff --git a/git.html b/git.html index 5f0b4b7..ab60722 100644 --- a/git.html +++ b/git.html
@@ -2617,6 +2617,17 @@ variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY… </p> </dd> +<dt class="hdlist1"> +<code>GIT_DEFAULT_HASH_ALGORITHM</code> +</dt> +<dd> +<p> + If this variable is set, the default hash algorithm for new + repositories will be set to this value. This value is currently + ignored when cloning; the setting of the remote repository + is used instead. The default is "sha1". +</p> +</dd> </dl></div> </div> <div class="sect2"> @@ -3366,7 +3377,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-10 08:03:13 PDT + 2020-03-26 18:10:39 PDT </div> </div> </body>
diff --git a/git.txt b/git.txt index b0672bd..9d6769e 100644 --- a/git.txt +++ b/git.txt
@@ -493,6 +493,12 @@ details. This variable has lower precedence than other path variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY... +`GIT_DEFAULT_HASH_ALGORITHM`:: + If this variable is set, the default hash algorithm for new + repositories will be set to this value. This value is currently + ignored when cloning; the setting of the remote repository + is used instead. The default is "sha1". + Git Commits ~~~~~~~~~~~ `GIT_AUTHOR_NAME`::
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 763dbf5..75401df 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html
@@ -938,7 +938,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:48 PDT + 2020-03-26 18:11:59 PDT </div> </div> </body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index b5faba3..8eca20e 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html
@@ -1469,7 +1469,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:48 PDT + 2020-03-26 18:11:59 PDT </div> </div> </body>
diff --git a/howto/new-command.html b/howto/new-command.html index b2815f2..429dcbc 100644 --- a/howto/new-command.html +++ b/howto/new-command.html
@@ -863,7 +863,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:42 PDT + 2020-03-26 18:11:53 PDT </div> </div> </body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 3699169..38241ae 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html
@@ -895,7 +895,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:48 PDT + 2020-03-26 18:11:59 PDT </div> </div> </body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index f31c295..a2a4cbd 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html
@@ -847,7 +847,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:47 PDT + 2020-03-26 18:11:58 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index c5bb93f..58060de 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html
@@ -880,7 +880,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:46 PDT + 2020-03-26 18:11:57 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index f89986c..bf41add 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html
@@ -1189,7 +1189,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:47 PDT + 2020-03-26 18:11:58 PDT </div> </div> </body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 4e29ea6..f95f1c8 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html
@@ -1025,7 +1025,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:46 PDT + 2020-03-26 18:11:56 PDT </div> </div> </body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 4840f3f..f73ba08 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html
@@ -907,7 +907,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:42 PDT + 2020-03-26 18:11:53 PDT </div> </div> </body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index f1510bc..05a90c4 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html
@@ -841,7 +841,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:45 PDT + 2020-03-26 18:11:56 PDT </div> </div> </body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 16ebb4d..09b6096 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html
@@ -1071,7 +1071,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:45 PDT + 2020-03-26 18:11:55 PDT </div> </div> </body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 23dc6d7..c107234 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html
@@ -930,7 +930,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:44 PDT + 2020-03-26 18:11:55 PDT </div> </div> </body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index d82b91c..8ec784c 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html
@@ -791,7 +791,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:44 PDT + 2020-03-26 18:11:55 PDT </div> </div> </body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 269561d..bad3c33 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html
@@ -848,7 +848,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:43 PDT + 2020-03-26 18:11:54 PDT </div> </div> </body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 46ebea7..7e1e3c6 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html
@@ -952,7 +952,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2020-03-25 14:28:43 PDT + 2020-03-26 18:11:54 PDT </div> </div> </body>